package cn.edu.scau.cmi.liangzaoqing.util;

import java.util.ArrayList;

public class ColumnAttributeUtil {
	
	public static String getJavaTypeOfColumn(String nativeType) {
		if(getBigDecimalList().contains(nativeType)) {
			return "BigDecimal";
		}else if(getBooleanList().contains(nativeType)) {
			return "Boolean";
		}else if(getByteArrayList().contains(nativeType)) {
			return "byte[]";
		}else if(getCalendarList().contains(nativeType)) {
			return "Calendar";
		}else if(getIntegerList().contains(nativeType)) {
			return "Integer";
		}else if(getStringList().contains(nativeType)) {
			return "String";
		}else 
			return null;
	}
	
	public static ArrayList<String> getStringList() {
		ArrayList<String> stringList = new ArrayList<String>();
		stringList.add("VARCHAR");
		stringList.add("CHAR");
		stringList.add("SET");
		stringList.add("ENUM");
		stringList.add("TINYTEXT");
		stringList.add("TEXT");
		stringList.add("MEDIUMTEXT");
		stringList.add("LONGTEXT");
		return stringList;
	}
	
	public static ArrayList<String> getIntegerList() {
		ArrayList<String> integerList = new ArrayList<String>();
		integerList.add("SMALLINT");
		integerList.add("MEDIUMINT");
		integerList.add("INT");
		integerList.add("INTEGER");
		integerList.add("BIGINT");
		return integerList;
	}
	
	public static ArrayList<String> getBooleanList() {
		ArrayList<String> booleanList = new ArrayList<String>();
		booleanList.add("TINYINT");
		booleanList.add("BIT");
		return booleanList;
	}
	
	public static ArrayList<String> getCalendarList() {
		ArrayList<String> calendarList = new ArrayList<String>();
		calendarList.add("TIMESTAMP");
		calendarList.add("DATE");
		calendarList.add("TIME");
		calendarList.add("YEAR");
		calendarList.add("DATETIME");
		return calendarList;
	}
	
	public static ArrayList<String> getBigDecimalList() {
		ArrayList<String> bigDecimalList = new ArrayList<String>();
		bigDecimalList.add("DOUBLE");
		bigDecimalList.add("FLOAT");
		bigDecimalList.add("REAL");
		bigDecimalList.add("DECIMAL");
		bigDecimalList.add("NUMERIC");
		return bigDecimalList;
	}
	
	public static ArrayList<String> getByteArrayList() {
		ArrayList<String> byteArrayList = new ArrayList<String>();
		byteArrayList.add("BINARY");
		byteArrayList.add("VARBINARY");
		byteArrayList.add("POINT");
		byteArrayList.add("LINESTRING");
		byteArrayList.add("POLYGON");
		byteArrayList.add("GEOMETRY");
		byteArrayList.add("MULTILINESTRING");
		byteArrayList.add("MULTIPOINT");
		byteArrayList.add("MULTIPOLYGON");
		byteArrayList.add("TINYBLOB");
		byteArrayList.add("BLOB");
		byteArrayList.add("MEDIUMBLOB");
		byteArrayList.add("LONGBLOB");
		byteArrayList.add("GEOMCOLLECTION");
		return byteArrayList;
	}
	
	
}
